package q80_removeDuplicates;

public class Solution_2 {
    /*
    减少判断的次数
     */
    public int removeDuplicates(int[] nums) {
        int n = nums.length;
        if (n <= 2) {
            return n;
        }
        // 分别定义两个指针
        // 因为数组的前两个元素一定可以保留下来
        // 所以我们从2开始
        int slow = 2, fast = 2;
        while (fast < n) {
            // 不等时 则令slow更新 然后两个指针同时后移
            if (nums[slow - 2] != nums[fast]) {
                nums[slow] = nums[fast];
                ++slow;
            }
            // 如果遇到相等就不停移动fast
            ++fast;
        }
        return slow;
    }

}
